package de.mnit.schnipsel.div;

import de.mnit.basis.daten.FormatText;
import de.mnit.basis.daten.struktur.S_Folge;
import de.mnit.basis.daten.typ.zeit.S_Zeitpunkt;
import de.mnit.basis.fehler.system.F_Sys_Datei;
import de.mnit.basis.fehler.system.F_Sys_Sicherheit;
import de.mnit.basis.netz.html.HtmlSchnell;
import de.mnit.basis.swt.dialog.SWT_Dialog;
import de.mnit.basis.swt.dialog.SWT_Fehler;
import de.mnit.basis.sys.datei.DSDatei;
import de.mnit.basis.sys.datei.S_Datei;
import de.mnit.schnipsel.db.B_Schnipsel;
import de.mnit.schnipsel.db.DBManager;

/**
 * @author Michael Nitsche
 * 12.05.2010	Erstellt
 */
public class HTML_Export {

	public void export() {
		String[] datei=SWT_Dialog.frage_DateiSpeichern("Ziel-Datei auswählen");
		if(datei==null || datei.length!=1)
			return;
		try {
			generator(DSDatei.neu(datei[0]));
			SWT_Dialog.hinweis("Daten wurden als HTML exportiert");
		}
		catch(F_Sys_Datei e) {
			SWT_Fehler.zeig(e, false);
		}
		catch(F_Sys_Sicherheit e) {
			SWT_Fehler.zeig(e, false);
		}
	}

	// INTERN

	private void generator(S_Datei ziel) throws F_Sys_Datei, F_Sys_Sicherheit {
		S_Folge<B_Schnipsel> alle=DBManager.schnipsel().gAlleB();
		HtmlSchnell html=new HtmlSchnell(ziel.schreiben(), "HTML-Schnipsel");
		for(B_Schnipsel b : alle)
			template(html, b);
		html.schliessen();
	}

	private void template(HtmlSchnell html, B_Schnipsel b) {
		html.schreib(templateKopf(b.TITEL.g(), b.ERSTELLT.g(), b.GEAENDERT.g(), b.KLICKS.g()));
		html.schreib(templateRumpf(b.TEXT.g()));
	}

	private String templateKopf(String titel, S_Zeitpunkt erstellt, S_Zeitpunkt geaendert, int klicks) {
		titel=FormatText.zuHTMLZeichen(titel);
		return "<table border=0 cellpadding=0 cellspacing=0 bgcolor=#aaaaff width=600>\n"
			+"<tr>\n<td align=center><font size=+1><strong>"+titel+"</strong></font></td>\n</tr>\n"
			+"<tr>\n<td align=center><font size=-2>Erstellt: "+erstellt+" - &Auml;nderung: "+geaendert+"</font></td>\n</tr>\n" //+" - Klicks: "+klicks+"</tr>\n"
			+"</table>\n<br>";
	}

	private String templateRumpf(String text) {
		text=FormatText.zuHTMLZeichen(text);
		text=text.replaceAll("\n", "<br>");
		return text+"\n<br><br><br>\n";
	}
}
